プログラムソースコード file1.py
# coding:utf-8
# file操作:open,read, close 2024/2/26
#ファイルから文字列を読み込んだり、ファイルに書き込んだりするには、
#まず、open() という関数によってファイルをオープンする(開く)。
import os
os.system("clear")
f = open("sakura.txt", "r")
'''
変数f には、ファイルを読み書きするためのデータが入ります。これをファイルオブジェクトと呼ばれる。
第1引数はファイル名、第2引数はモードには、(引数| モード)。 'r' | 読み込み
読み込み関数:
#fの最後まで読み込まれたデータを一括に表示する.一回のみで読み切る。
f.read()
#読み込まれたデータの最初の5文字を表示する。offsetは6番目文字に移動される。
f.read(5)
#最初の1行を表示。offsetは次の行に移動される。
f.readline()
#読み込まれたデータを文字ごとに表示する。
import time
for x in f:
print(x)
time.sleep(0.5)
'''
#ファイル操作終了したら、ファイルを閉じる(クローズ)
f.close()
#fileからデータを読み込んだのち、計算のため文字列関数を用いてデータを分解して変数へ適用する。
#例題1:成績ファイルscore.csvからデータを読み込んだのち、統計計算を行う
import math
import statistics
#ファイルの行数を求める
lnum = len(open('score.csv').readlines())
#あるいは lnum = sum(1 for line in open('score.csv'))
f = open("score.csv", "r")
#score.csvデータを行ごとにリストdataに取り込む
#最初のタイトルの文字列を取り出す
title = f.readline()
#順に行ごとに点数をリストdataに取り入れ
data = []
for i in range(1,lnum):
str = f.readline()
#改行を除去する、文字列を実数型にし、リストに追加する
str.replace('\n','')
data.append(float(str))
print(f"{title}データ={data}\n")
#中央値を求めるためソーティングする
mid = data.copy()
mid.sort()
m = math.floor(lnum/2)
#統計計算結果出力
print(f"最大値={max(data)} 最小値={min(data)} 平均値={sum(data)/(lnum-1):.4g} 中央値={mid[m]}\n")
print(f"平均={statistics.mean(data):.4g} 中央値={statistics.median(data)}\n")
print(f"最頻値={statistics.mode(data):.4g} 分散={statistics.pvariance(data):4g} \n")
#例題2:fruits.txtからデータを読み込む。そのデータを文字列関数を用いて辞書型にする。
f = open("fruits.txt", "r")
#一括に文字列str1に代入する
str1 = f.read()
print("ファイルから読み込んだデータ:",str1)
#ファイルのクローズ(閉じる)
f.close()
#データの変換処理
#リストにするため、str1の中にある:を,に置き換える
str2 = str1.replace(':' , ',')
print(":を,に置き換え結果:",str2)
#文字列のstr2を文字列分割関数でコマごとに分解して、リストlist1にする
list1 = list(str2.split(","))
print(list1)
#list1を辞書fruitsに変換する。fruits{"果物の名前":値段}
fruits = {}
i = 0
while(i < len(list1)):
#辞書のキーの文字列にある""を除去すると値を整数型に整える
x = list1[i].replace('\"','')
y = int(list1[i+1])
fruits[x] = y
i += 2
#結果確認
print("変換結果確認:",fruits)
print(fruits.get('林檎'))
for k,v in fruits.items():
print(k, ":", v,"円")
読み込み用ファイル
ファイル:sakura.txt
桜(サクラ)は、バラ科サクラ亜科サクラ属の落葉高木または低木の樹木です。
サクラ属には、サクラ、ウワミズザクラ、スモモ、モモ、ウメ、ニワウメの6亜属があり、一般に花の美しいものはサクラ亜属に含まれています。
サクラは、シベリア、日本、中国、米国・カナダなど、主に北半球の温帯に広範囲に自生しています。日本文化に馴染みの深い植物であり、その変異しやすい特質から特に日本で花見目的に多くの栽培品種が作出されてきました。サクラは春の象徴とされ、花見は日本の文化となっています。また、サクラは落葉樹であり、秋になると葉が紅葉して美しい景色を見せてくれます。
「桜」という漢字は訓読みでは「さくら」、音読みでは「オウ」と読みます。ただし、人名に用いられる場合はこの限りではありません。「桜」はいわゆる新体字であり、旧字体では「櫻」と表記します。中国語の繁体字は旧字体と同じ「櫻」、簡体字では「樱」と表記されます。
桜の花言葉は、「精神美」「優美な女性」「純潔」です。「精神美」は、桜が日本の国花という位置づけから、日本国、そして日本人の品格を表すシンボルとして、美しさを託した言葉という推察があります。
ファイル: score.csv
数学成績
100
88.75
97.5
95
100
100
100
100
65.5
100
97.5
92.5
100
70.5
100
97.5
90
90
68
95
65.5
100
100
87.5
95
92.5
97.5
100
86.25
100
100
100
82.5
100
100
100
ファイル:fruits.txt"
"林檎":250,"柿":150,"バナナ":200,"スイカ":1000,"葡萄":450,"オレンジ":500
file1.pyプログラム計算結果の表示
数学成績
データ=[100.0, 88.75, 97.5, 95.0, 100.0, 100.0, 100.0, 100.0, 65.5, 100.0, 97.5, 92.5, 100.0, 70.5, 100.0, 97.5, 90.0, 90.0, 68.0, 95.0, 65.5, 100.0, 100.0, 87.5, 95.0, 92.5, 97.5, 100.0, 86.25, 100.0, 100.0, 100.0, 82.5, 100.0, 100.0, 100.0]
最大値=100.0 最小値=65.5 平均値=93.18 中央値=97.5
平均=93.18 中央値=97.5 中央値=97.5 中央値=97.5
最頻値=100 母分散=105.311
ファイルから読み込んだデータ: "林檎":250,"柿":150,"バナナ":200,"スイカ":1000,"葡萄":450,"オレンジ":500
:を,に置き換え結果: "林檎",250,"柿",150,"バナナ",200,"スイカ",1000,"葡萄",450,"オレンジ",500
['"林檎"', '250', '"柿"', '150', '"バナナ"', '200', '"スイカ"', '1000', '"葡萄"', '450', '"オレンジ"', '500']
変換結果確認: {'林檎': 250, '柿': 150, 'バナナ': 200, 'スイカ': 1000, '葡萄': 450, 'オレンジ': 500}
250
林檎 : 250 円
柿 : 150 円
バナナ : 200 円
スイカ : 1000 円
葡萄 : 450 円
オレンジ : 500 円